home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / scribble / scribble.h.z / scribble.h
C/C++ Source or Header  |  2002-04-08  |  2KB  |  89 lines

  1. /****************************************************************************
  2. ** $Id:  qt/scribble.h   3.0.3   edited Oct 12 12:18 $
  3. **
  4. ** Copyright ( C ) 1992-2000 Trolltech AS.  All rights reserved.
  5. **
  6. ** This file is part of an example program for Qt.  This example
  7. ** program may be used, distributed and modified without limitation.
  8. **
  9. *****************************************************************************/
  10.  
  11. #ifndef SCRIBBLE_H
  12. #define SCRIBBLE_H
  13.  
  14. #include <qmainwindow.h>
  15. #include <qpen.h>
  16. #include <qpoint.h>
  17. #include <qpixmap.h>
  18. #include <qwidget.h>
  19. #include <qstring.h>
  20. #include <qpointarray.h>
  21.  
  22. class QMouseEvent;
  23. class QResizeEvent;
  24. class QPaintEvent;
  25. class QToolButton;
  26. class QSpinBox;
  27.  
  28. class Canvas : public QWidget
  29. {
  30.     Q_OBJECT
  31.  
  32. public:
  33.     Canvas( QWidget *parent = 0, const char *name = 0 );
  34.  
  35.     void setPenColor( const QColor &c )
  36.     { pen.setColor( c ); }
  37.  
  38.     void setPenWidth( int w )
  39.     { pen.setWidth( w ); }
  40.  
  41.     QColor penColor()
  42.     { return pen.color(); }
  43.  
  44.     int penWidth()
  45.     { return pen.width(); }
  46.  
  47.     void save( const QString &filename, const QString &format );
  48.  
  49.     void clearScreen();
  50.  
  51. protected:
  52.     void mousePressEvent( QMouseEvent *e );
  53.     void mouseReleaseEvent( QMouseEvent *e );
  54.     void mouseMoveEvent( QMouseEvent *e );
  55.     void resizeEvent( QResizeEvent *e );
  56.     void paintEvent( QPaintEvent *e );
  57.  
  58.     QPen pen;
  59.     QPointArray polyline;
  60.  
  61.     bool mousePressed;
  62.  
  63.     QPixmap buffer;
  64.  
  65. };
  66.  
  67. class Scribble : public QMainWindow
  68. {
  69.     Q_OBJECT
  70.  
  71. public:
  72.     Scribble( QWidget *parent = 0, const char *name = 0 );
  73.  
  74. protected:
  75.     Canvas* canvas;
  76.  
  77.     QSpinBox *bPWidth;
  78.     QToolButton *bPColor, *bSave, *bClear;
  79.  
  80. protected slots:
  81.     void slotSave();
  82.     void slotColor();
  83.     void slotWidth( int );
  84.     void slotClear();
  85.  
  86. };
  87.  
  88. #endif
  89.